package com.yyw.rabbitmq.core.serialize;

/**
 * @author yiyw
 * @ClassName Serialize.java
 * @Description TODO
 * @createTime 2021年07月28日 22:54:00
 */
public interface Serialize {
    /**
     * 序列化  Object -> byte[]
     * @param data
     * @return
     */
    byte[] serializeRaw(Object data);

    /**
     * 序列化 Object -> String
     * @param data
     * @return
     */
    String serialize(Object data);

    /**
     * 反序列化 String -> Object
     * @param content
     * @param <T>
     * @return
     */
    <T> T deserialize(String content);

    /**
     * 反序列化 byte[] -> Object
     * @param content
     * @param <T>
     * @return
     */
    <T> T deserialize(byte[] content);
}
